" 配置文件导入 "{{{
runtime ./vimrc.vim
" 插件
lua require('plugins')
" 按键映射--------------------------------------------------------------------
inoremap kj <Esc>
" 快速跳转行首与行尾
nnoremap L $
nnoremap H ^
" Y复制到行尾
nnoremap Y y$
" V选中到行尾
nnoremap <leader>v v$

" 插入模式移动光标
inoremap <C-h> <Left>
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-l> <Right>
inoremap <C-x> <Delete>
inoremap <C-c> <esc>


"缩进
nnoremap <S-Tab> <<
"关闭高亮
nnoremap <Esc> :nohl<CR>a<Esc>

"格式化依赖插件tab
vmap ga :Tabularize /
" ,和k一块按去掉空行
noremap <leader>k :g/^$/d<CR>
" ,和u一块按删除重复行
noremap <leader>u :sort<CR>:g/^\(.*\)$\n\1$/d<CR>
"如果是Windows编辑过的会在行尾多出^M,使用leaderm删除他们
nnoremap <leader>m :%s/\r//g<CR>
"tab转空格
nnoremap <leader>b :%retab!<CR>
"全局删除行尾空格
nnoremap <leader>w :%s/\s\+$//<cr>:let @/=''<CR>


"java多行注释
nnoremap zs <s-i>/**<space><esc><s-a><space>*/<esc>j
inoremap zs <esc><s-i>/**<space><esc><s-a><space>*/<esc>j


""""""""""""""""功能快捷键""""""""""""""
"保持屏幕在正中间
nnoremap j jzz
nnoremap k kzz
nnoremap x xzz
nnoremap G Gzz
nnoremap p pzz
nnoremap P Pzz
inoremap <ESC> <ESC>zz
inoremap <ENTER> <ENTER><ESC>zzi
nnoremap <ENTER> <ENTER>zz
nnoremap o o<ESC>zza
nnoremap O O<ESC>zza
nnoremap a a<ESC>zza


"加空格不进入插入模式
noremap <SPACE> i<SPACE><RIGHT><Esc>
"用tab换行
noremap <TAB> i<CR><RIGHT><Esc>
"noremap <S-CR> i<CR><Esc>
" 在正常模式下添加空行
noremap <CR> o<ESC>
noremap <S-Enter> O<Esc>



" 重新加载设置
map R :source $MYVIMRC<CR>

" 窗口管理器
nmap  -  <Plug>(choosewin)
"设置s无用,停用s键
noremap s <nop>
" split the screens to up (horizontal), down (horizontal), left (vertical), right (vertical)
"向上分屏
noremap sk :set nosplitbelow<CR>:split<CR>:set splitbelow<CR>
"向下分屏
noremap sj :set splitbelow<CR>:split<CR>
"向左分屏
noremap sh :set nosplitright<CR>:vsplit<CR>:set splitright<CR>
"向右分屏
noremap sl :set splitright<CR>:vsplit<CR>
"逆时针旋转你的分屏
noremap sq <C-w>t<C-w>K
"顺时针旋转你的分屏
noremap se <C-w>t<C-w>H

"""""""""""""""""X删除而不是剪切(dd仍是剪切,<leader>dd删除),并且共享系统剪切板"""""""""""""""""""""""

if has('unnamedplus')
    set clipboard=unnamed,unnamedplus
    nnoremap <leader>d "-d
    nnoremap <leader>D "-D
    vnoremap <leader>d "-d
else
    set clipboard=unnamed
    nnoremap <leader>d "*d
    nnoremap <leader>D "*D
    vnoremap <leader>d "*d
endif
nnoremap x "_x
nnoremap X "_X
nnoremap c "_c
nnoremap C "_C
nnoremap d "+d
nnoremap D "+D

vnoremap x "_x
vnoremap X "_X
vnoremap c "_c
vnoremap C "_C
vnoremap d "+d
vnoremap D "+D

"选中粘贴寄存器不保留选中的内容
vnoremap p "_dP
